package com.dragon.modules.yuegou.entity.product;

import com.baomidou.mybatisplus.annotation.TableName;
import com.dragon.modules.yuegou.enums.OwnerType;
import com.dragon.modules.yuegou.enums.SkuType;
import com.dragon.modules.yuegou.enums.product.SpuPackageType;
import com.dragon.modules.yuegou.enums.product.SpuPublishStatus;
import com.dragon.modules.yuegou.enums.product.SpuShowModule;
import com.dragon.modules.yuegou.enums.product.SpuTemplateType;
import com.dragon.modules.yuegou.enums.product.SpuTimeLimitType;
import com.dragon.modules.yuegou.enums.product.SpuVerifyStatus;
import com.dragon.modules.yuegou.enums.product.SpuViewModel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 商品信息实体类<br>
 * 对应的表为：pro_spu<br>
 * 
 * @author pbuilder generated
 * @date 2023-09-08 08:40:09
 * @company sgy
 * @version 2.0
 */
@TableName("pro_spu")
@ApiModel(description = "商品信息")
public class SpuEntity {

    /** ID */
	@ApiModelProperty("ID")
	protected String id;

    /** 集团ID */
	@ApiModelProperty("集团ID")
	protected String groupId;

    /** [全局枚举]所有者类型：0-平台-PLATFORM、1-集团-GROUP、2-商圈-BUSINESS_DISTRICT、3-商户-MERCHANT */
	@ApiModelProperty("[全局枚举]所有者类型：0-平台-PLATFORM、1-集团-GROUP、2-商圈-BUSINESS_DISTRICT、3-商户-MERCHANT")
	protected OwnerType ownerType;

    /** [全局枚举]商品类型：0-悦卡-YUECARD、1-套餐-PACKAGE、2-商户停车券-PARKCOUPON、3-积分停车券-POINTPARKCOUPON、4-实物-GOODS、5-积分商品-POINTGOODS、6-伪造商品-MOCK、7-奖品-PRIZE、8-优惠券-DISCOUNTCOUPON、9-礼包-GIFTBAG、10-免费商品/卷-FREE */
	@ApiModelProperty("[全局枚举]商品类型：0-悦卡-YUECARD、1-套餐-PACKAGE、2-商户停车券-PARKCOUPON、3-积分停车券-POINTPARKCOUPON、4-实物-GOODS、5-积分商品-POINTGOODS、6-伪造商品-MOCK、7-奖品-PRIZE、8-优惠券-DISCOUNTCOUPON、9-礼包-GIFTBAG、10-免费商品/卷-FREE")
	protected SkuType skuType;

    /** 商圈ID */
	@ApiModelProperty("商圈ID")
	protected String busdId;

    /** 商品类目ID */
	@ApiModelProperty("商品类目ID")
	protected String categoryId;

    /** 商家ID */
	@ApiModelProperty("商家ID")
	protected String merchantId;

    /** 商品名称/标题 */
	@ApiModelProperty("商品名称/标题")
	protected String title;

    /** [枚举]展示模块：0-优选好货-GOODS、1-积分商城-SHOP、2-套餐-PACKAGE、3-商户停车券-MERCHANT、4-限时折扣-LIMITSALES、5-秒杀-SECKILL、6-拼团-COLLAGE、7-助力砍价-HELP、10-套餐子商品-PACKAGE_ITEM、11-奖品-PRIZE、12-到家商品-GOHOME、13-不显示-NOSHOW */
	@ApiModelProperty("[枚举]展示模块：0-优选好货-GOODS、1-积分商城-SHOP、2-套餐-PACKAGE、3-商户停车券-MERCHANT、4-限时折扣-LIMITSALES、5-秒杀-SECKILL、6-拼团-COLLAGE、7-助力砍价-HELP、10-套餐子商品-PACKAGE_ITEM、11-奖品-PRIZE、12-到家商品-GOHOME、13-不显示-NOSHOW")
	protected SpuShowModule showModule;

    /** 显示按钮名称 */
	@ApiModelProperty("显示按钮名称")
	protected String showBtnTitle;

    /** 库存量 */
	@ApiModelProperty("库存量")
	protected Integer stock;

    /** 产品主图 */
	@ApiModelProperty("产品主图")
	protected String mainImg;

    /** 图片列表 */
	@ApiModelProperty("图片列表")
	protected String imgs;

    /** 商品最高价 */
	@ApiModelProperty("商品最高价")
	protected BigDecimal maxPrice;

    /** 商品最低价 */
	@ApiModelProperty("商品最低价")
	protected BigDecimal minPrice;

    /** 单价 */
	@ApiModelProperty("单价")
	protected BigDecimal price;

    /** 积分 */
	@ApiModelProperty("积分")
	protected Integer point;

    /** 每人最大购买数量 */
	@ApiModelProperty("每人最大购买数量")
	protected Integer maxBuyNum;

    /** 积分商品 最低购买等级 0为不限制 */
	@ApiModelProperty("积分商品 最低购买等级 0为不限制")
	protected Integer minBuyLevel;

    /** 市场价 */
	@ApiModelProperty("市场价")
	protected BigDecimal marketPrice;

    /** 品牌 */
	@ApiModelProperty("品牌")
	protected String brand;

    /** 模板ID */
	@ApiModelProperty("模板ID")
	protected String templateId;

    /** [枚举]模板类型：0-优惠券-COUPON、1-悦卡-YUECARD */
	@ApiModelProperty("[枚举]模板类型：0-优惠券-COUPON、1-悦卡-YUECARD")
	protected SpuTemplateType templateType;

    /** [枚举]上架状态：0-下架-LOWER、1-上架-UPPER */
	@ApiModelProperty("[枚举]上架状态：0-下架-LOWER、1-上架-UPPER")
	protected SpuPublishStatus publishStatus;

    /** [枚举]审核状态：0-未提交-UNSUBMITTED、1-已提交未审核-CHECKING、2-审核通过-PASSED、3-审核不通过-UNPASSED */
	@ApiModelProperty("[枚举]审核状态：0-未提交-UNSUBMITTED、1-已提交未审核-CHECKING、2-审核通过-PASSED、3-审核不通过-UNPASSED")
	protected SpuVerifyStatus verifyStatus;

    /** [枚举]时间限制类型：0-固定时段-FIXED_RANGE、1-有效天数-VALID_DAYS、2-从不失效-NO_RULE */
	@ApiModelProperty("[枚举]时间限制类型：0-固定时段-FIXED_RANGE、1-有效天数-VALID_DAYS、2-从不失效-NO_RULE")
	protected SpuTimeLimitType timeLimitType;

    /** 失效天数（获取后能够有效的天数） */
	@ApiModelProperty("失效天数（获取后能够有效的天数）")
	protected Integer validDays;

    /** [枚举]展示模块：0-商品详情-SPU_INFO、1-运营活动-OPERATION */
	@ApiModelProperty("[枚举]展示模块：0-商品详情-SPU_INFO、1-运营活动-OPERATION")
	protected SpuViewModel viewModel;

    /** 展示 有效期 开始时间 */
	@ApiModelProperty("展示 有效期 开始时间")
	protected LocalDateTime viewBeginTime;

    /** 展示 有效期 结束时间 */
	@ApiModelProperty("展示 有效期 结束时间")
	protected LocalDateTime viewEndTime;

    /** 购买开始时间 */
	@ApiModelProperty("购买开始时间")
	protected LocalDateTime buyBeginTime;

    /** 购买结束时间 */
	@ApiModelProperty("购买结束时间")
	protected LocalDateTime buyEndTime;

    /** 有效期 开始时间 */
	@ApiModelProperty("有效期 开始时间")
	protected LocalDateTime beginTime;

    /** 有效期 结束时间 */
	@ApiModelProperty("有效期 结束时间")
	protected LocalDateTime endTime;

    /** 商品描述 图片列表 */
	@ApiModelProperty("商品描述 图片列表")
	protected String description;

    /** 商品图片描述 图片列表 */
	@ApiModelProperty("商品图片描述 图片列表")
	protected String imgDescription;

    /** [枚举]是否套餐：0-否-NO、1-是-YES */
	@ApiModelProperty("[枚举]是否套餐：0-否-NO、1-是-YES")
	protected SpuPackageType packageType;

    /** 浏览量 */
	@ApiModelProperty("浏览量")
	protected Integer scanNum;

    /** 使用规则 */
	@ApiModelProperty("使用规则")
	protected String useRule;

    /** 创建人ID */
	@ApiModelProperty("创建人ID")
	protected String createdBy;

    /** 创建时间 */
	@ApiModelProperty("创建时间")
	protected LocalDateTime createdTime;

    /** 更新人ID */
	@ApiModelProperty("更新人ID")
	protected String modifiedBy;

    /** 更新时间 */
	@ApiModelProperty("更新时间")
	protected LocalDateTime modifiedTime;

    /** 审批人 */
	@ApiModelProperty("审批人")
	protected String checkBy;

    /** 审批时间 */
	@ApiModelProperty("审批时间")
	protected LocalDateTime checkTime;

    /** 审批意见 */
	@ApiModelProperty("审批意见")
	protected String checkRemark;

    /** 逻辑删除，1表示已删除,0表示未删除 */
	@ApiModelProperty("逻辑删除，1表示已删除,0表示未删除")
	protected Boolean del;

    /** 删除人ID */
	@ApiModelProperty("删除人ID")
	protected String delBy;

    /** 删除时间 */
	@ApiModelProperty("删除时间")
	protected LocalDateTime delTime;

    /** 排序 */
	@ApiModelProperty("排序")
	protected Integer sortNo;

    /** 售卖开始时间 */
	@ApiModelProperty("售卖开始时间")
	protected LocalDateTime sellBeginTime;

    /** 售卖结束时间 */
	@ApiModelProperty("售卖结束时间")
	protected LocalDateTime sellEndTime;

    /** 倒计时开始时间 */
	@ApiModelProperty("倒计时开始时间")
	protected LocalDateTime invertedBeginTime;

    /** 倒计时结束时间 */
	@ApiModelProperty("倒计时结束时间")
	protected LocalDateTime invertedEndTime;

    /** [枚举]是否显示倒计时：0-不显示-HIDE、1-显示-SHOW */
	@ApiModelProperty("[枚举]是否显示倒计时：0-不显示-HIDE、1-显示-SHOW")
	protected Integer invertedShow;

	/**
	 * 构造一个空商品信息实体对象
	 */
	public SpuEntity(){
		super();
	}

	/**
	 * 依据其它对象的信息构造一个商品信息实体对象
	 * 
	 * @param other 其它对象
	 */
	public SpuEntity(SpuEntity other){
		super();
     	this.id = other.id;
     	this.groupId = other.groupId;
     	this.ownerType = other.ownerType;
     	this.skuType = other.skuType;
     	this.busdId = other.busdId;
     	this.categoryId = other.categoryId;
     	this.merchantId = other.merchantId;
     	this.title = other.title;
     	this.showModule = other.showModule;
     	this.showBtnTitle = other.showBtnTitle;
     	this.stock = other.stock;
     	this.mainImg = other.mainImg;
     	this.imgs = other.imgs;
     	this.maxPrice = other.maxPrice;
     	this.minPrice = other.minPrice;
     	this.price = other.price;
     	this.point = other.point;
     	this.maxBuyNum = other.maxBuyNum;
     	this.minBuyLevel = other.minBuyLevel;
     	this.marketPrice = other.marketPrice;
     	this.brand = other.brand;
     	this.templateId = other.templateId;
     	this.templateType = other.templateType;
     	this.publishStatus = other.publishStatus;
     	this.verifyStatus = other.verifyStatus;
     	this.timeLimitType = other.timeLimitType;
     	this.validDays = other.validDays;
     	this.viewModel = other.viewModel;
     	this.viewBeginTime = other.viewBeginTime;
     	this.viewEndTime = other.viewEndTime;
     	this.buyBeginTime = other.buyBeginTime;
     	this.buyEndTime = other.buyEndTime;
     	this.beginTime = other.beginTime;
     	this.endTime = other.endTime;
     	this.description = other.description;
     	this.imgDescription = other.imgDescription;
     	this.packageType = other.packageType;
     	this.scanNum = other.scanNum;
     	this.useRule = other.useRule;
     	this.createdBy = other.createdBy;
     	this.createdTime = other.createdTime;
     	this.modifiedBy = other.modifiedBy;
     	this.modifiedTime = other.modifiedTime;
     	this.checkBy = other.checkBy;
     	this.checkTime = other.checkTime;
     	this.checkRemark = other.checkRemark;
     	this.del = other.del;
     	this.delBy = other.delBy;
     	this.delTime = other.delTime;
     	this.sortNo = other.sortNo;
     	this.sellBeginTime = other.sellBeginTime;
     	this.sellEndTime = other.sellEndTime;
     	this.invertedBeginTime = other.invertedBeginTime;
     	this.invertedEndTime = other.invertedEndTime;
     	this.invertedShow = other.invertedShow;
	}


	/**
	 * 获取ID
	 * 
	 * @return id ID
	 */
	public String getId() {
		return id;
	}
  	
	/**
	 * 设置ID
	 * 
	 * @param id ID
	 */
	public void setId(String id) {
		this.id = id;
	}

	/**
	 * 获取集团ID
	 * 
	 * @return groupId 集团ID
	 */
	public String getGroupId() {
		return groupId;
	}
  	
	/**
	 * 设置集团ID
	 * 
	 * @param groupId 集团ID
	 */
	public void setGroupId(String groupId) {
		this.groupId = groupId;
	}

	/**
	 * 获取[全局枚举]所有者类型：0-平台-PLATFORM、1-集团-GROUP、2-商圈-BUSINESS_DISTRICT、3-商户-MERCHANT
	 * 
	 * @return ownerType [全局枚举]所有者类型：0-平台-PLATFORM、1-集团-GROUP、2-商圈-BUSINESS_DISTRICT、3-商户-MERCHANT
	 */
	public OwnerType getOwnerType() {
		return ownerType;
	}
  	
	/**
	 * 设置[全局枚举]所有者类型：0-平台-PLATFORM、1-集团-GROUP、2-商圈-BUSINESS_DISTRICT、3-商户-MERCHANT
	 * 
	 * @param ownerType [全局枚举]所有者类型：0-平台-PLATFORM、1-集团-GROUP、2-商圈-BUSINESS_DISTRICT、3-商户-MERCHANT
	 */
	public void setOwnerType(OwnerType ownerType) {
		this.ownerType = ownerType;
	}

	/**
	 * 获取[全局枚举]商品类型：0-悦卡-YUECARD、1-套餐-PACKAGE、2-商户停车券-PARKCOUPON、3-积分停车券-POINTPARKCOUPON、4-实物-GOODS、5-积分商品-POINTGOODS、6-伪造商品-MOCK、7-奖品-PRIZE、8-优惠券-DISCOUNTCOUPON、9-礼包-GIFTBAG、10-免费商品/卷-FREE
	 * 
	 * @return skuType [全局枚举]商品类型：0-悦卡-YUECARD、1-套餐-PACKAGE、2-商户停车券-PARKCOUPON、3-积分停车券-POINTPARKCOUPON、4-实物-GOODS、5-积分商品-POINTGOODS、6-伪造商品-MOCK、7-奖品-PRIZE、8-优惠券-DISCOUNTCOUPON、9-礼包-GIFTBAG、10-免费商品/卷-FREE
	 */
	public SkuType getSkuType() {
		return skuType;
	}
  	
	/**
	 * 设置[全局枚举]商品类型：0-悦卡-YUECARD、1-套餐-PACKAGE、2-商户停车券-PARKCOUPON、3-积分停车券-POINTPARKCOUPON、4-实物-GOODS、5-积分商品-POINTGOODS、6-伪造商品-MOCK、7-奖品-PRIZE、8-优惠券-DISCOUNTCOUPON、9-礼包-GIFTBAG、10-免费商品/卷-FREE
	 * 
	 * @param skuType [全局枚举]商品类型：0-悦卡-YUECARD、1-套餐-PACKAGE、2-商户停车券-PARKCOUPON、3-积分停车券-POINTPARKCOUPON、4-实物-GOODS、5-积分商品-POINTGOODS、6-伪造商品-MOCK、7-奖品-PRIZE、8-优惠券-DISCOUNTCOUPON、9-礼包-GIFTBAG、10-免费商品/卷-FREE
	 */
	public void setSkuType(SkuType skuType) {
		this.skuType = skuType;
	}

	/**
	 * 获取商圈ID
	 * 
	 * @return busdId 商圈ID
	 */
	public String getBusdId() {
		return busdId;
	}
  	
	/**
	 * 设置商圈ID
	 * 
	 * @param busdId 商圈ID
	 */
	public void setBusdId(String busdId) {
		this.busdId = busdId;
	}

	/**
	 * 获取商品类目ID
	 * 
	 * @return categoryId 商品类目ID
	 */
	public String getCategoryId() {
		return categoryId;
	}
  	
	/**
	 * 设置商品类目ID
	 * 
	 * @param categoryId 商品类目ID
	 */
	public void setCategoryId(String categoryId) {
		this.categoryId = categoryId;
	}

	/**
	 * 获取商家ID
	 * 
	 * @return merchantId 商家ID
	 */
	public String getMerchantId() {
		return merchantId;
	}
  	
	/**
	 * 设置商家ID
	 * 
	 * @param merchantId 商家ID
	 */
	public void setMerchantId(String merchantId) {
		this.merchantId = merchantId;
	}

	/**
	 * 获取商品名称/标题
	 * 
	 * @return title 商品名称/标题
	 */
	public String getTitle() {
		return title;
	}
  	
	/**
	 * 设置商品名称/标题
	 * 
	 * @param title 商品名称/标题
	 */
	public void setTitle(String title) {
		this.title = title;
	}

	/**
	 * 获取[枚举]展示模块：0-优选好货-GOODS、1-积分商城-SHOP、2-套餐-PACKAGE、3-商户停车券-MERCHANT、4-限时折扣-LIMITSALES、5-秒杀-SECKILL、6-拼团-COLLAGE、7-助力砍价-HELP、10-套餐子商品-PACKAGE_ITEM、11-奖品-PRIZE、12-到家商品-GOHOME、13-不显示-NOSHOW
	 * 
	 * @return showModule [枚举]展示模块：0-优选好货-GOODS、1-积分商城-SHOP、2-套餐-PACKAGE、3-商户停车券-MERCHANT、4-限时折扣-LIMITSALES、5-秒杀-SECKILL、6-拼团-COLLAGE、7-助力砍价-HELP、10-套餐子商品-PACKAGE_ITEM、11-奖品-PRIZE、12-到家商品-GOHOME、13-不显示-NOSHOW
	 */
	public SpuShowModule getShowModule() {
		return showModule;
	}
  	
	/**
	 * 设置[枚举]展示模块：0-优选好货-GOODS、1-积分商城-SHOP、2-套餐-PACKAGE、3-商户停车券-MERCHANT、4-限时折扣-LIMITSALES、5-秒杀-SECKILL、6-拼团-COLLAGE、7-助力砍价-HELP、10-套餐子商品-PACKAGE_ITEM、11-奖品-PRIZE、12-到家商品-GOHOME、13-不显示-NOSHOW
	 * 
	 * @param showModule [枚举]展示模块：0-优选好货-GOODS、1-积分商城-SHOP、2-套餐-PACKAGE、3-商户停车券-MERCHANT、4-限时折扣-LIMITSALES、5-秒杀-SECKILL、6-拼团-COLLAGE、7-助力砍价-HELP、10-套餐子商品-PACKAGE_ITEM、11-奖品-PRIZE、12-到家商品-GOHOME、13-不显示-NOSHOW
	 */
	public void setShowModule(SpuShowModule showModule) {
		this.showModule = showModule;
	}

	/**
	 * 获取显示按钮名称
	 * 
	 * @return showBtnTitle 显示按钮名称
	 */
	public String getShowBtnTitle() {
		return showBtnTitle;
	}
  	
	/**
	 * 设置显示按钮名称
	 * 
	 * @param showBtnTitle 显示按钮名称
	 */
	public void setShowBtnTitle(String showBtnTitle) {
		this.showBtnTitle = showBtnTitle;
	}

	/**
	 * 获取库存量
	 * 
	 * @return stock 库存量
	 */
	public Integer getStock() {
		return stock;
	}
  	
	/**
	 * 设置库存量
	 * 
	 * @param stock 库存量
	 */
	public void setStock(Integer stock) {
		this.stock = stock;
	}

	/**
	 * 获取产品主图
	 * 
	 * @return mainImg 产品主图
	 */
	public String getMainImg() {
		return mainImg;
	}
  	
	/**
	 * 设置产品主图
	 * 
	 * @param mainImg 产品主图
	 */
	public void setMainImg(String mainImg) {
		this.mainImg = mainImg;
	}

	/**
	 * 获取图片列表
	 * 
	 * @return imgs 图片列表
	 */
	public String getImgs() {
		return imgs;
	}
  	
	/**
	 * 设置图片列表
	 * 
	 * @param imgs 图片列表
	 */
	public void setImgs(String imgs) {
		this.imgs = imgs;
	}

	/**
	 * 获取商品最高价
	 * 
	 * @return maxPrice 商品最高价
	 */
	public BigDecimal getMaxPrice() {
		return maxPrice;
	}
  	
	/**
	 * 设置商品最高价
	 * 
	 * @param maxPrice 商品最高价
	 */
	public void setMaxPrice(BigDecimal maxPrice) {
		this.maxPrice = maxPrice;
	}

	/**
	 * 获取商品最低价
	 * 
	 * @return minPrice 商品最低价
	 */
	public BigDecimal getMinPrice() {
		return minPrice;
	}
  	
	/**
	 * 设置商品最低价
	 * 
	 * @param minPrice 商品最低价
	 */
	public void setMinPrice(BigDecimal minPrice) {
		this.minPrice = minPrice;
	}

	/**
	 * 获取单价
	 * 
	 * @return price 单价
	 */
	public BigDecimal getPrice() {
		return price;
	}
  	
	/**
	 * 设置单价
	 * 
	 * @param price 单价
	 */
	public void setPrice(BigDecimal price) {
		this.price = price;
	}

	/**
	 * 获取积分
	 * 
	 * @return point 积分
	 */
	public Integer getPoint() {
		return point;
	}
  	
	/**
	 * 设置积分
	 * 
	 * @param point 积分
	 */
	public void setPoint(Integer point) {
		this.point = point;
	}

	/**
	 * 获取每人最大购买数量
	 * 
	 * @return maxBuyNum 每人最大购买数量
	 */
	public Integer getMaxBuyNum() {
		return maxBuyNum;
	}
  	
	/**
	 * 设置每人最大购买数量
	 * 
	 * @param maxBuyNum 每人最大购买数量
	 */
	public void setMaxBuyNum(Integer maxBuyNum) {
		this.maxBuyNum = maxBuyNum;
	}

	/**
	 * 获取积分商品 最低购买等级 0为不限制
	 * 
	 * @return minBuyLevel 积分商品 最低购买等级 0为不限制
	 */
	public Integer getMinBuyLevel() {
		return minBuyLevel;
	}
  	
	/**
	 * 设置积分商品 最低购买等级 0为不限制
	 * 
	 * @param minBuyLevel 积分商品 最低购买等级 0为不限制
	 */
	public void setMinBuyLevel(Integer minBuyLevel) {
		this.minBuyLevel = minBuyLevel;
	}

	/**
	 * 获取市场价
	 * 
	 * @return marketPrice 市场价
	 */
	public BigDecimal getMarketPrice() {
		return marketPrice;
	}
  	
	/**
	 * 设置市场价
	 * 
	 * @param marketPrice 市场价
	 */
	public void setMarketPrice(BigDecimal marketPrice) {
		this.marketPrice = marketPrice;
	}

	/**
	 * 获取品牌
	 * 
	 * @return brand 品牌
	 */
	public String getBrand() {
		return brand;
	}
  	
	/**
	 * 设置品牌
	 * 
	 * @param brand 品牌
	 */
	public void setBrand(String brand) {
		this.brand = brand;
	}

	/**
	 * 获取模板ID
	 * 
	 * @return templateId 模板ID
	 */
	public String getTemplateId() {
		return templateId;
	}
  	
	/**
	 * 设置模板ID
	 * 
	 * @param templateId 模板ID
	 */
	public void setTemplateId(String templateId) {
		this.templateId = templateId;
	}

	/**
	 * 获取[枚举]模板类型：0-优惠券-COUPON、1-悦卡-YUECARD
	 * 
	 * @return templateType [枚举]模板类型：0-优惠券-COUPON、1-悦卡-YUECARD
	 */
	public SpuTemplateType getTemplateType() {
		return templateType;
	}
  	
	/**
	 * 设置[枚举]模板类型：0-优惠券-COUPON、1-悦卡-YUECARD
	 * 
	 * @param templateType [枚举]模板类型：0-优惠券-COUPON、1-悦卡-YUECARD
	 */
	public void setTemplateType(SpuTemplateType templateType) {
		this.templateType = templateType;
	}

	/**
	 * 获取[枚举]上架状态：0-下架-LOWER、1-上架-UPPER
	 * 
	 * @return publishStatus [枚举]上架状态：0-下架-LOWER、1-上架-UPPER
	 */
	public SpuPublishStatus getPublishStatus() {
		return publishStatus;
	}
  	
	/**
	 * 设置[枚举]上架状态：0-下架-LOWER、1-上架-UPPER
	 * 
	 * @param publishStatus [枚举]上架状态：0-下架-LOWER、1-上架-UPPER
	 */
	public void setPublishStatus(SpuPublishStatus publishStatus) {
		this.publishStatus = publishStatus;
	}

	/**
	 * 获取[枚举]审核状态：0-未提交-UNSUBMITTED、1-已提交未审核-CHECKING、2-审核通过-PASSED、3-审核不通过-UNPASSED
	 * 
	 * @return verifyStatus [枚举]审核状态：0-未提交-UNSUBMITTED、1-已提交未审核-CHECKING、2-审核通过-PASSED、3-审核不通过-UNPASSED
	 */
	public SpuVerifyStatus getVerifyStatus() {
		return verifyStatus;
	}
  	
	/**
	 * 设置[枚举]审核状态：0-未提交-UNSUBMITTED、1-已提交未审核-CHECKING、2-审核通过-PASSED、3-审核不通过-UNPASSED
	 * 
	 * @param verifyStatus [枚举]审核状态：0-未提交-UNSUBMITTED、1-已提交未审核-CHECKING、2-审核通过-PASSED、3-审核不通过-UNPASSED
	 */
	public void setVerifyStatus(SpuVerifyStatus verifyStatus) {
		this.verifyStatus = verifyStatus;
	}

	/**
	 * 获取[枚举]时间限制类型：0-固定时段-FIXED_RANGE、1-有效天数-VALID_DAYS、2-从不失效-NO_RULE
	 * 
	 * @return timeLimitType [枚举]时间限制类型：0-固定时段-FIXED_RANGE、1-有效天数-VALID_DAYS、2-从不失效-NO_RULE
	 */
	public SpuTimeLimitType getTimeLimitType() {
		return timeLimitType;
	}
  	
	/**
	 * 设置[枚举]时间限制类型：0-固定时段-FIXED_RANGE、1-有效天数-VALID_DAYS、2-从不失效-NO_RULE
	 * 
	 * @param timeLimitType [枚举]时间限制类型：0-固定时段-FIXED_RANGE、1-有效天数-VALID_DAYS、2-从不失效-NO_RULE
	 */
	public void setTimeLimitType(SpuTimeLimitType timeLimitType) {
		this.timeLimitType = timeLimitType;
	}

	/**
	 * 获取失效天数（获取后能够有效的天数）
	 * 
	 * @return validDays 失效天数（获取后能够有效的天数）
	 */
	public Integer getValidDays() {
		return validDays;
	}
  	
	/**
	 * 设置失效天数（获取后能够有效的天数）
	 * 
	 * @param validDays 失效天数（获取后能够有效的天数）
	 */
	public void setValidDays(Integer validDays) {
		this.validDays = validDays;
	}

	/**
	 * 获取[枚举]展示模块：0-商品详情-SPU_INFO、1-运营活动-OPERATION
	 * 
	 * @return viewModel [枚举]展示模块：0-商品详情-SPU_INFO、1-运营活动-OPERATION
	 */
	public SpuViewModel getViewModel() {
		return viewModel;
	}
  	
	/**
	 * 设置[枚举]展示模块：0-商品详情-SPU_INFO、1-运营活动-OPERATION
	 * 
	 * @param viewModel [枚举]展示模块：0-商品详情-SPU_INFO、1-运营活动-OPERATION
	 */
	public void setViewModel(SpuViewModel viewModel) {
		this.viewModel = viewModel;
	}

	/**
	 * 获取展示 有效期 开始时间
	 * 
	 * @return viewBeginTime 展示 有效期 开始时间
	 */
	public LocalDateTime getViewBeginTime() {
		return viewBeginTime;
	}
  	
	/**
	 * 设置展示 有效期 开始时间
	 * 
	 * @param viewBeginTime 展示 有效期 开始时间
	 */
	public void setViewBeginTime(LocalDateTime viewBeginTime) {
		this.viewBeginTime = viewBeginTime;
	}

	/**
	 * 获取展示 有效期 结束时间
	 * 
	 * @return viewEndTime 展示 有效期 结束时间
	 */
	public LocalDateTime getViewEndTime() {
		return viewEndTime;
	}
  	
	/**
	 * 设置展示 有效期 结束时间
	 * 
	 * @param viewEndTime 展示 有效期 结束时间
	 */
	public void setViewEndTime(LocalDateTime viewEndTime) {
		this.viewEndTime = viewEndTime;
	}

	/**
	 * 获取购买开始时间
	 * 
	 * @return buyBeginTime 购买开始时间
	 */
	public LocalDateTime getBuyBeginTime() {
		return buyBeginTime;
	}
  	
	/**
	 * 设置购买开始时间
	 * 
	 * @param buyBeginTime 购买开始时间
	 */
	public void setBuyBeginTime(LocalDateTime buyBeginTime) {
		this.buyBeginTime = buyBeginTime;
	}

	/**
	 * 获取购买结束时间
	 * 
	 * @return buyEndTime 购买结束时间
	 */
	public LocalDateTime getBuyEndTime() {
		return buyEndTime;
	}
  	
	/**
	 * 设置购买结束时间
	 * 
	 * @param buyEndTime 购买结束时间
	 */
	public void setBuyEndTime(LocalDateTime buyEndTime) {
		this.buyEndTime = buyEndTime;
	}

	/**
	 * 获取有效期 开始时间
	 * 
	 * @return beginTime 有效期 开始时间
	 */
	public LocalDateTime getBeginTime() {
		return beginTime;
	}
  	
	/**
	 * 设置有效期 开始时间
	 * 
	 * @param beginTime 有效期 开始时间
	 */
	public void setBeginTime(LocalDateTime beginTime) {
		this.beginTime = beginTime;
	}

	/**
	 * 获取有效期 结束时间
	 * 
	 * @return endTime 有效期 结束时间
	 */
	public LocalDateTime getEndTime() {
		return endTime;
	}
  	
	/**
	 * 设置有效期 结束时间
	 * 
	 * @param endTime 有效期 结束时间
	 */
	public void setEndTime(LocalDateTime endTime) {
		this.endTime = endTime;
	}

	/**
	 * 获取商品描述 图片列表
	 * 
	 * @return description 商品描述 图片列表
	 */
	public String getDescription() {
		return description;
	}
  	
	/**
	 * 设置商品描述 图片列表
	 * 
	 * @param description 商品描述 图片列表
	 */
	public void setDescription(String description) {
		this.description = description;
	}

	/**
	 * 获取商品图片描述 图片列表
	 * 
	 * @return imgDescription 商品图片描述 图片列表
	 */
	public String getImgDescription() {
		return imgDescription;
	}
  	
	/**
	 * 设置商品图片描述 图片列表
	 * 
	 * @param imgDescription 商品图片描述 图片列表
	 */
	public void setImgDescription(String imgDescription) {
		this.imgDescription = imgDescription;
	}

	/**
	 * 获取[枚举]是否套餐：0-否-NO、1-是-YES
	 * 
	 * @return packageType [枚举]是否套餐：0-否-NO、1-是-YES
	 */
	public SpuPackageType getPackageType() {
		return packageType;
	}
  	
	/**
	 * 设置[枚举]是否套餐：0-否-NO、1-是-YES
	 * 
	 * @param packageType [枚举]是否套餐：0-否-NO、1-是-YES
	 */
	public void setPackageType(SpuPackageType packageType) {
		this.packageType = packageType;
	}

	/**
	 * 获取浏览量
	 * 
	 * @return scanNum 浏览量
	 */
	public Integer getScanNum() {
		return scanNum;
	}
  	
	/**
	 * 设置浏览量
	 * 
	 * @param scanNum 浏览量
	 */
	public void setScanNum(Integer scanNum) {
		this.scanNum = scanNum;
	}

	/**
	 * 获取使用规则
	 * 
	 * @return useRule 使用规则
	 */
	public String getUseRule() {
		return useRule;
	}
  	
	/**
	 * 设置使用规则
	 * 
	 * @param useRule 使用规则
	 */
	public void setUseRule(String useRule) {
		this.useRule = useRule;
	}

	/**
	 * 获取创建人ID
	 * 
	 * @return createdBy 创建人ID
	 */
	public String getCreatedBy() {
		return createdBy;
	}
  	
	/**
	 * 设置创建人ID
	 * 
	 * @param createdBy 创建人ID
	 */
	public void setCreatedBy(String createdBy) {
		this.createdBy = createdBy;
	}

	/**
	 * 获取创建时间
	 * 
	 * @return createdTime 创建时间
	 */
	public LocalDateTime getCreatedTime() {
		return createdTime;
	}
  	
	/**
	 * 设置创建时间
	 * 
	 * @param createdTime 创建时间
	 */
	public void setCreatedTime(LocalDateTime createdTime) {
		this.createdTime = createdTime;
	}

	/**
	 * 获取更新人ID
	 * 
	 * @return modifiedBy 更新人ID
	 */
	public String getModifiedBy() {
		return modifiedBy;
	}
  	
	/**
	 * 设置更新人ID
	 * 
	 * @param modifiedBy 更新人ID
	 */
	public void setModifiedBy(String modifiedBy) {
		this.modifiedBy = modifiedBy;
	}

	/**
	 * 获取更新时间
	 * 
	 * @return modifiedTime 更新时间
	 */
	public LocalDateTime getModifiedTime() {
		return modifiedTime;
	}
  	
	/**
	 * 设置更新时间
	 * 
	 * @param modifiedTime 更新时间
	 */
	public void setModifiedTime(LocalDateTime modifiedTime) {
		this.modifiedTime = modifiedTime;
	}

	/**
	 * 获取审批人
	 * 
	 * @return checkBy 审批人
	 */
	public String getCheckBy() {
		return checkBy;
	}
  	
	/**
	 * 设置审批人
	 * 
	 * @param checkBy 审批人
	 */
	public void setCheckBy(String checkBy) {
		this.checkBy = checkBy;
	}

	/**
	 * 获取审批时间
	 * 
	 * @return checkTime 审批时间
	 */
	public LocalDateTime getCheckTime() {
		return checkTime;
	}
  	
	/**
	 * 设置审批时间
	 * 
	 * @param checkTime 审批时间
	 */
	public void setCheckTime(LocalDateTime checkTime) {
		this.checkTime = checkTime;
	}

	/**
	 * 获取审批意见
	 * 
	 * @return checkRemark 审批意见
	 */
	public String getCheckRemark() {
		return checkRemark;
	}
  	
	/**
	 * 设置审批意见
	 * 
	 * @param checkRemark 审批意见
	 */
	public void setCheckRemark(String checkRemark) {
		this.checkRemark = checkRemark;
	}

	/**
	 * 获取逻辑删除，1表示已删除,0表示未删除
	 * 
	 * @return del 逻辑删除，1表示已删除,0表示未删除
	 */
	public Boolean getDel() {
		return del;
	}
  	
	/**
	 * 设置逻辑删除，1表示已删除,0表示未删除
	 * 
	 * @param del 逻辑删除，1表示已删除,0表示未删除
	 */
	public void setDel(Boolean del) {
		this.del = del;
	}

	/**
	 * 获取删除人ID
	 * 
	 * @return delBy 删除人ID
	 */
	public String getDelBy() {
		return delBy;
	}
  	
	/**
	 * 设置删除人ID
	 * 
	 * @param delBy 删除人ID
	 */
	public void setDelBy(String delBy) {
		this.delBy = delBy;
	}

	/**
	 * 获取删除时间
	 * 
	 * @return delTime 删除时间
	 */
	public LocalDateTime getDelTime() {
		return delTime;
	}
  	
	/**
	 * 设置删除时间
	 * 
	 * @param delTime 删除时间
	 */
	public void setDelTime(LocalDateTime delTime) {
		this.delTime = delTime;
	}

	/**
	 * 获取排序
	 * 
	 * @return sortNo 排序
	 */
	public Integer getSortNo() {
		return sortNo;
	}
  	
	/**
	 * 设置排序
	 * 
	 * @param sortNo 排序
	 */
	public void setSortNo(Integer sortNo) {
		this.sortNo = sortNo;
	}

	/**
	 * 获取售卖开始时间
	 * 
	 * @return sellBeginTime 售卖开始时间
	 */
	public LocalDateTime getSellBeginTime() {
		return sellBeginTime;
	}
  	
	/**
	 * 设置售卖开始时间
	 * 
	 * @param sellBeginTime 售卖开始时间
	 */
	public void setSellBeginTime(LocalDateTime sellBeginTime) {
		this.sellBeginTime = sellBeginTime;
	}

	/**
	 * 获取售卖结束时间
	 * 
	 * @return sellEndTime 售卖结束时间
	 */
	public LocalDateTime getSellEndTime() {
		return sellEndTime;
	}
  	
	/**
	 * 设置售卖结束时间
	 * 
	 * @param sellEndTime 售卖结束时间
	 */
	public void setSellEndTime(LocalDateTime sellEndTime) {
		this.sellEndTime = sellEndTime;
	}

	/**
	 * 获取倒计时开始时间
	 * 
	 * @return invertedBeginTime 倒计时开始时间
	 */
	public LocalDateTime getInvertedBeginTime() {
		return invertedBeginTime;
	}
  	
	/**
	 * 设置倒计时开始时间
	 * 
	 * @param invertedBeginTime 倒计时开始时间
	 */
	public void setInvertedBeginTime(LocalDateTime invertedBeginTime) {
		this.invertedBeginTime = invertedBeginTime;
	}

	/**
	 * 获取倒计时结束时间
	 * 
	 * @return invertedEndTime 倒计时结束时间
	 */
	public LocalDateTime getInvertedEndTime() {
		return invertedEndTime;
	}
  	
	/**
	 * 设置倒计时结束时间
	 * 
	 * @param invertedEndTime 倒计时结束时间
	 */
	public void setInvertedEndTime(LocalDateTime invertedEndTime) {
		this.invertedEndTime = invertedEndTime;
	}

	/**
	 * 获取[枚举]是否显示倒计时：0-不显示-HIDE、1-显示-SHOW
	 * 
	 * @return invertedShow [枚举]是否显示倒计时：0-不显示-HIDE、1-显示-SHOW
	 */
	public Integer getInvertedShow() {
		return invertedShow;
	}
  	
	/**
	 * 设置[枚举]是否显示倒计时：0-不显示-HIDE、1-显示-SHOW
	 * 
	 * @param invertedShow [枚举]是否显示倒计时：0-不显示-HIDE、1-显示-SHOW
	 */
	public void setInvertedShow(Integer invertedShow) {
		this.invertedShow = invertedShow;
	}

    public String toString() {
		return new StringBuilder().append("SpuEntity{").
			append("id=").append(id).
			append(",groupId=").append(groupId).
			append(",ownerType=").append(ownerType).
			append(",skuType=").append(skuType).
			append(",busdId=").append(busdId).
			append(",categoryId=").append(categoryId).
			append(",merchantId=").append(merchantId).
			append(",title=").append(title).
			append(",showModule=").append(showModule).
			append(",showBtnTitle=").append(showBtnTitle).
			append(",stock=").append(stock).
			append(",mainImg=").append(mainImg).
			append(",imgs=").append(imgs).
			append(",maxPrice=").append(maxPrice).
			append(",minPrice=").append(minPrice).
			append(",price=").append(price).
			append(",point=").append(point).
			append(",maxBuyNum=").append(maxBuyNum).
			append(",minBuyLevel=").append(minBuyLevel).
			append(",marketPrice=").append(marketPrice).
			append(",brand=").append(brand).
			append(",templateId=").append(templateId).
			append(",templateType=").append(templateType).
			append(",publishStatus=").append(publishStatus).
			append(",verifyStatus=").append(verifyStatus).
			append(",timeLimitType=").append(timeLimitType).
			append(",validDays=").append(validDays).
			append(",viewModel=").append(viewModel).
			append(",viewBeginTime=").append(viewBeginTime).
			append(",viewEndTime=").append(viewEndTime).
			append(",buyBeginTime=").append(buyBeginTime).
			append(",buyEndTime=").append(buyEndTime).
			append(",beginTime=").append(beginTime).
			append(",endTime=").append(endTime).
			append(",description=").append(description).
			append(",imgDescription=").append(imgDescription).
			append(",packageType=").append(packageType).
			append(",scanNum=").append(scanNum).
			append(",useRule=").append(useRule).
			append(",createdBy=").append(createdBy).
			append(",createdTime=").append(createdTime).
			append(",modifiedBy=").append(modifiedBy).
			append(",modifiedTime=").append(modifiedTime).
			append(",checkBy=").append(checkBy).
			append(",checkTime=").append(checkTime).
			append(",checkRemark=").append(checkRemark).
			append(",del=").append(del).
			append(",delBy=").append(delBy).
			append(",delTime=").append(delTime).
			append(",sortNo=").append(sortNo).
			append(",sellBeginTime=").append(sellBeginTime).
			append(",sellEndTime=").append(sellEndTime).
			append(",invertedBeginTime=").append(invertedBeginTime).
			append(",invertedEndTime=").append(invertedEndTime).
			append(",invertedShow=").append(invertedShow).
			append('}').toString();
    }

	/**
	 * 复制对象
	 * 
	 * @return 复制后的新实体对象
	 */
	public SpuEntity copy() {
		return new SpuEntity(this);
	}

    /** ID */
	public static final String COL_ID = "id";

    /** 集团ID */
	public static final String COL_GROUP_ID = "group_id";

    /** [全局枚举]所有者类型：0-平台-PLATFORM、1-集团-GROUP、2-商圈-BUSINESS_DISTRICT、3-商户-MERCHANT */
	public static final String COL_OWNER_TYPE = "owner_type";

    /** [全局枚举]商品类型：0-悦卡-YUECARD、1-套餐-PACKAGE、2-商户停车券-PARKCOUPON、3-积分停车券-POINTPARKCOUPON、4-实物-GOODS、5-积分商品-POINTGOODS、6-伪造商品-MOCK、7-奖品-PRIZE、8-优惠券-DISCOUNTCOUPON、9-礼包-GIFTBAG、10-免费商品/卷-FREE */
	public static final String COL_SKU_TYPE = "sku_type";

    /** 商圈ID */
	public static final String COL_BUSD_ID = "busd_id";

    /** 商品类目ID */
	public static final String COL_CATEGORY_ID = "category_id";

    /** 商家ID */
	public static final String COL_MERCHANT_ID = "merchant_id";

    /** 商品名称/标题 */
	public static final String COL_TITLE = "title";

    /** [枚举]展示模块：0-优选好货-GOODS、1-积分商城-SHOP、2-套餐-PACKAGE、3-商户停车券-MERCHANT、4-限时折扣-LIMITSALES、5-秒杀-SECKILL、6-拼团-COLLAGE、7-助力砍价-HELP、10-套餐子商品-PACKAGE_ITEM、11-奖品-PRIZE、12-到家商品-GOHOME、13-不显示-NOSHOW */
	public static final String COL_SHOW_MODULE = "show_module";

    /** 显示按钮名称 */
	public static final String COL_SHOW_BTN_TITLE = "show_btn_title";

    /** 库存量 */
	public static final String COL_STOCK = "stock";

    /** 产品主图 */
	public static final String COL_MAIN_IMG = "main_img";

    /** 图片列表 */
	public static final String COL_IMGS = "imgs";

    /** 商品最高价 */
	public static final String COL_MAX_PRICE = "max_price";

    /** 商品最低价 */
	public static final String COL_MIN_PRICE = "min_price";

    /** 单价 */
	public static final String COL_PRICE = "price";

    /** 积分 */
	public static final String COL_POINT = "point";

    /** 每人最大购买数量 */
	public static final String COL_MAX_BUY_NUM = "max_buy_num";

    /** 积分商品 最低购买等级 0为不限制 */
	public static final String COL_MIN_BUY_LEVEL = "min_buy_level";

    /** 市场价 */
	public static final String COL_MARKET_PRICE = "market_price";

    /** 品牌 */
	public static final String COL_BRAND = "brand";

    /** 模板ID */
	public static final String COL_TEMPLATE_ID = "template_id";

    /** [枚举]模板类型：0-优惠券-COUPON、1-悦卡-YUECARD */
	public static final String COL_TEMPLATE_TYPE = "template_type";

    /** [枚举]上架状态：0-下架-LOWER、1-上架-UPPER */
	public static final String COL_PUBLISH_STATUS = "publish_status";

    /** [枚举]审核状态：0-未提交-UNSUBMITTED、1-已提交未审核-CHECKING、2-审核通过-PASSED、3-审核不通过-UNPASSED */
	public static final String COL_VERIFY_STATUS = "verify_status";

    /** [枚举]时间限制类型：0-固定时段-FIXED_RANGE、1-有效天数-VALID_DAYS、2-从不失效-NO_RULE */
	public static final String COL_TIME_LIMIT_TYPE = "time_limit_type";

    /** 失效天数（获取后能够有效的天数） */
	public static final String COL_VALID_DAYS = "valid_days";

    /** [枚举]展示模块：0-商品详情-SPU_INFO、1-运营活动-OPERATION */
	public static final String COL_VIEW_MODEL = "view_model";

    /** 展示 有效期 开始时间 */
	public static final String COL_VIEW_BEGIN_TIME = "view_begin_time";

    /** 展示 有效期 结束时间 */
	public static final String COL_VIEW_END_TIME = "view_end_time";

    /** 购买开始时间 */
	public static final String COL_BUY_BEGIN_TIME = "buy_begin_time";

    /** 购买结束时间 */
	public static final String COL_BUY_END_TIME = "buy_end_time";

    /** 有效期 开始时间 */
	public static final String COL_BEGIN_TIME = "begin_time";

    /** 有效期 结束时间 */
	public static final String COL_END_TIME = "end_time";

    /** 商品描述 图片列表 */
	public static final String COL_DESCRIPTION = "description";

    /** 商品图片描述 图片列表 */
	public static final String COL_IMG_DESCRIPTION = "img_description";

    /** [枚举]是否套餐：0-否-NO、1-是-YES */
	public static final String COL_PACKAGE_TYPE = "package_type";

    /** 浏览量 */
	public static final String COL_SCAN_NUM = "scan_num";

    /** 使用规则 */
	public static final String COL_USE_RULE = "use_rule";

    /** 创建人ID */
	public static final String COL_CREATED_BY = "created_by";

    /** 创建时间 */
	public static final String COL_CREATED_TIME = "created_time";

    /** 更新人ID */
	public static final String COL_MODIFIED_BY = "modified_by";

    /** 更新时间 */
	public static final String COL_MODIFIED_TIME = "modified_time";

    /** 审批人 */
	public static final String COL_CHECK_BY = "check_by";

    /** 审批时间 */
	public static final String COL_CHECK_TIME = "check_time";

    /** 审批意见 */
	public static final String COL_CHECK_REMARK = "check_remark";

    /** 逻辑删除，1表示已删除,0表示未删除 */
	public static final String COL_DEL = "del";

    /** 删除人ID */
	public static final String COL_DEL_BY = "del_by";

    /** 删除时间 */
	public static final String COL_DEL_TIME = "del_time";

    /** 排序 */
	public static final String COL_SORT_NO = "sort_no";

    /** 售卖开始时间 */
	public static final String COL_SELL_BEGIN_TIME = "sell_begin_time";

    /** 售卖结束时间 */
	public static final String COL_SELL_END_TIME = "sell_end_time";

    /** 倒计时开始时间 */
	public static final String COL_INVERTED_BEGIN_TIME = "inverted_begin_time";

    /** 倒计时结束时间 */
	public static final String COL_INVERTED_END_TIME = "inverted_end_time";

    /** [枚举]是否显示倒计时：0-不显示-HIDE、1-显示-SHOW */
	public static final String COL_INVERTED_SHOW = "inverted_show";
}
